package com.yonyou.cyxdms.basedata.service.dto.vehicleprice;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeSerializer;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 整车物料号价格维护
 *
 * @author renwd
 * @since 2019/7/23
 */

public class ProductPriceDTO {

    private Long productPriceId;

    private String dealerCode; //经销商代码

    @NotNull
    private String productCode;//产品代码

    private Double oemDirectivePrice;//车厂指导价

    private Double directivePrice;//销售指导价

    private Integer productStatus;//产品状态

    // 提交时间
    @JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeSerializer.class)
    private LocalDateTime commitTime;

    private String commitMan;//提交人

    // 审核时间
    @JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeSerializer.class)
    private LocalDateTime auditTime;

    private String auditMan;//审核人

    private String auditRemark; //审核备注

    private Integer dataSources;//数据来源

    private Integer packageId;//配置ID

    //上市日期
    @JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeSerializer.class)
    private LocalDateTime startDate;

    //退市日期
    @JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeSerializer.class)
    private LocalDateTime endDate;

    private String productPriceIds;//id字符串

    private List<ProductPriceDTO> productPriceList;//选装件列表

    public Long getProductPriceId() {
        return productPriceId;
    }

    public void setProductPriceId(Long productPriceId) {
        this.productPriceId = productPriceId;
    }

    public String getDealerCode() {
        return dealerCode;
    }

    public void setDealerCode(String dealerCode) {
        this.dealerCode = dealerCode;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public Double getOemDirectivePrice() {
        return oemDirectivePrice;
    }

    public void setOemDirectivePrice(Double oemDirectivePrice) {
        this.oemDirectivePrice = oemDirectivePrice;
    }

    public Double getDirectivePrice() {
        return directivePrice;
    }

    public void setDirectivePrice(Double directivePrice) {
        this.directivePrice = directivePrice;
    }

    public Integer getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(Integer productStatus) {
        this.productStatus = productStatus;
    }

    public String getAuditRemark() {
        return auditRemark;
    }

    public void setAuditRemark(String auditRemark) {
        this.auditRemark = auditRemark;
    }

    public Integer getDataSources() {
        return dataSources;
    }

    public void setDataSources(Integer dataSources) {
        this.dataSources = dataSources;
    }

    public Integer getPackageId() {
        return packageId;
    }

    public void setPackageId(Integer packageId) {
        this.packageId = packageId;
    }

    public String getProductPriceIds() {
        return productPriceIds;
    }

    public void setProductPriceIds(String productPriceIds) {
        this.productPriceIds = productPriceIds;
    }

    public List<ProductPriceDTO> getProductPriceList() {
        return productPriceList;
    }

    public void setProductPriceList(List<ProductPriceDTO> productPriceList) {
        this.productPriceList = productPriceList;
    }

    public LocalDateTime getCommitTime() {
        return commitTime;
    }

    public void setCommitTime(LocalDateTime commitTime) {
        this.commitTime = commitTime;
    }

    public String getCommitMan() {
        return commitMan;
    }

    public void setCommitMan(String commitMan) {
        this.commitMan = commitMan;
    }

    public LocalDateTime getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(LocalDateTime auditTime) {
        this.auditTime = auditTime;
    }

    public String getAuditMan() {
        return auditMan;
    }

    public void setAuditMan(String auditMan) {
        this.auditMan = auditMan;
    }

    public LocalDateTime getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    public LocalDateTime getEndDate() {
        return endDate;
    }

    public void setEndDate(LocalDateTime endDate) {
        this.endDate = endDate;
    }
}
